package Leetcode;


/**
 * 回文链表
 * 给定一个链表的头节点head ，请判断其是否为回文链表。
 * 如果一个链表是回文那么链表节点序列从前往后看和从后往前看是相同的。
 */
public class test027Jianzhi1Offer {

    //反转链表
    public ListNode reverseList(ListNode head) {
        ListNode dummyHead=new ListNode();
        //遍历链表的同时建立新的链表
        while (head!=null){
            ListNode node=new ListNode(head.val);
            node.next=dummyHead.next;
            dummyHead.next=node;
            head=head.next;
        }
        return dummyHead.next;
    }


    /**
     * 将原链表反转得到新的链表，同时遍历找不同
     * @param head
     * @return
     */
    public boolean isPalindrome(ListNode head) {
       ListNode newLink=reverseList(head);
       while (head!=null){
           if (head.val!= newLink.val){
               return false;
           }
           head=head.next;
           newLink=newLink.next;
       }
        return true;
    }


}
